package com.fjh.aspect;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class LogAspect {

    // 定义切入点
    @Pointcut("within(com.fjh.pojo..*) && execution(* add(..))")
    public void addProduct() {}

    @Pointcut("within(com.fjh.pojo..*) && execution(* remove(..))")
    public void removeProduct() {}

    @Pointcut("within(com.fjh.pojo..*) && execution(* listAll(..))")
    public void listProducts() {}

    // 在添加商品前记录日志
    @Before("addProduct()")
    public void logAddProduct() {
        System.out.println("Adding product to cart...");
    }

    // 在移除商品前记录日志
    @Before("removeProduct()")
    public void logRemoveProduct() {
        System.out.println("Removing product from cart...");
    }

    // 在获取商品列表后记录日志
    @AfterReturning("listProducts()")
    public void logListProducts() {
        System.out.println("Listing products from cart...");
    }
}



